﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using LHS.Core.TableInfo;

namespace LHS.Win
{
    public partial class frmBANotCapThuoc : Form
    {
        LHS.Core.Clinical.ClinicalController objController = new LHS.Core.Clinical.ClinicalController();
        // Methods
        public frmBANotCapThuoc()
        {
            this.InitializeComponent();
        }
        private void btExit_Click(object sender, EventArgs e)
        {
            base.Close();
        }

        private void btSearch_Click(object sender, EventArgs e)
        {
            string str = string.Empty;
            if (this.rbAll.Checked)
            {
                this.frmTimHoSoBenhAn_Load(sender, e);
            }
            else if (this.tbKeySearch.Text == "")
            {
                MessageBox.Show("Vui lòng nhập từ khóa để tìm kiếm!", "Lỗi tìm kiếm", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
            else
            {
                DataTable dtPatient = null;
                try
                {
                    if (this.rbID.Checked)
                    {
                        dtPatient = objController.GetPatientHasPrescriptionDT(this.tbKeySearch.Text, string.Empty);
                    }
                    else
                    {
                        dtPatient = objController.GetPatientHasPrescriptionDT(string.Empty, this.tbKeySearch.Text);
                    }
                }
                catch(Exception ex)
                {
                    Class.ShowException(ex);
                }
                if (dtPatient == null || dtPatient.Rows.Count == 0)
                {
                    MessageBox.Show("Không tìm thấy bệnh nhân ", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                }
                else
                {
                    bindingSource1.DataSource = dtPatient;
                    this.dataGrid1.DataSource = bindingSource1;
                    this.dataGrid1.ReadOnly = true;
                    this.dataGrid1.TableStyles.Clear();
                    this.loadDataGrid();
                }
            }
        }

        private void dataGrid1_MouseUp(object sender, MouseEventArgs e)
        {
            if ((this.dataGrid1.DataSource != null) && (MessageBox.Show("Bạn có muốn cấp thuốc của bệnh nhân này không?", "Xem hóa Đơn", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes))
            {
                this.dataGrid1.Select(this.dataGrid1.CurrentRowIndex);
                this.clrISN = this.dataGrid1[this.dataGrid1.CurrentRowIndex, 0].ToString();
                this.patName = this.dataGrid1[this.dataGrid1.CurrentRowIndex, 2].ToString();
                this.patID = this.dataGrid1[this.dataGrid1.CurrentRowIndex, 1].ToString();
                frmCapThuoc thuoc = new frmCapThuoc(this);
                thuoc.ShowInTaskbar = false;
                thuoc.ShowDialog(this);
                this.frmTimHoSoBenhAn_Load(sender, e);
            }
        }

        private void frmTimHoSoBenhAn_Load(object sender, EventArgs e)
        {
            try
            {
                DataTable dtPatient = objController.GetPatientHasPrescriptionDT(string.Empty, string.Empty);
                bindingSource1.DataSource = dtPatient;
                this.dataGrid1.DataSource = bindingSource1;
                this.dataGrid1.TableStyles.Clear();
                this.loadDataGrid();
            }
            catch (Exception ex)
            {
                Class.ShowException(ex);
            }
        }

        public void loadDataGrid()
        {
            DataGridTableStyle table = new DataGridTableStyle();
            table.MappingName = "vw_PatientHasPrescription";
            table.AlternatingBackColor = Color.AliceBlue;
            table.HeaderForeColor = Color.Maroon;
            table.GridLineColor = Color.CornflowerBlue;
            DataGridTextBoxColumn column = new DataGridTextBoxColumn();
            column.MappingName = InfoClinicalRecord.CLRISN;
            column.HeaderText = "";
            column.Width = 0;
            table.GridColumnStyles.Add(column);
            DataGridTextBoxColumn column2 = new DataGridTextBoxColumn();
            column2.MappingName = InfoPatients.PATID;
            column2.HeaderText = "Số ID";
            column2.Width = 100;
            table.GridColumnStyles.Add(column2);
            DataGridTextBoxColumn column3 = new DataGridTextBoxColumn();
            column3.MappingName = InfoPatients.PATNAME;
            column3.HeaderText = "Tên Bệnh Nhân";
            column3.Width = 210;
            table.GridColumnStyles.Add(column3);
            DataGridTextBoxColumn column4 = new DataGridTextBoxColumn();
            column4.MappingName = InfoPatients.PATBIRTHDATE ;
            column4.HeaderText = "Ngày Sinh";
            column4.Width = 100;
            table.GridColumnStyles.Add(column4);
            DataGridTextBoxColumn column5 = new DataGridTextBoxColumn();
            column5.MappingName = "clrExaminationTimesVN";
            column5.HeaderText = "Ngày Lập Bệnh Án";
            column5.Width = 140;
            column5.NullText = string.Empty;
            table.GridColumnStyles.Add(column5);
            DataGridTextBoxColumn column6 = new DataGridTextBoxColumn();
            column6.MappingName = InfoClinicalRecord.CLREXAMINATIONTIMES;
            column6.HeaderText = "Lần Khám";
            column6.Width = 120;
            column6.NullText = string.Empty;
            table.GridColumnStyles.Add(column6);
            DataGridTextBoxColumn column7 = new DataGridTextBoxColumn();
            column7.MappingName = InfoClinicalRecord.CLRREXAMINATIONTIMES;
            column7.HeaderText = "Lần Tái Khám";
            column7.Width = 120;
            column7.NullText = string.Empty;
            table.GridColumnStyles.Add(column7);
            this.dataGrid1.TableStyles.Add(table);
            table.AllowSorting = false;
         
        }
    }
}